maven 私服构建上传 jar

概述

Maven 私服是企业级开发中用于管理和共享 JAR 包的重要工具。通过将 PIGX 项目构建并上传到私服,可以实现团队内部的依赖共享和版本管理。本文档介绍如何使用阿里云制品仓库作为 Maven 私服,完成 PIGX 项目的构建和上传。

适用场景

适用于需要在团队内部共享 PIGX 自定义模块、进行版本控制或多环境部署的场景。

修改版本号为快照版本

在上传私服之前,需要将 PIGX 项目的版本号统一修改为快照版本(SNAPSHOT),以便持续集成和开发迭代。

1
全局替换版本号

在 IDEA 中使用快捷键 Ctrl + Shift + R(Windows/Linux)或 Command + Shift + R(macOS)打开全局替换对话框,将当前版本号(如 5.11.1)替换为快照版本(如 5.11.1-SNAPSHOT)。

版本号全局替换示例
版本规范

快照版本必须以 -SNAPSHOT 结尾,用于标识该版本为开发中的不稳定版本,可以被重复覆盖上传。

创建阿里云制品仓库

阿里云制品仓库(Packages)提供免费的 Maven 私服服务,支持快照版本和正式版本的管理。

1
访问阿里云制品仓库

打开浏览器访问 https://packages.aliyun.com,使用阿里云账号登录。

2
创建 Maven 仓库

点击"创建仓库"按钮,选择仓库类型为"Maven",填写仓库名称和描述信息。

3
获取仓库地址

创建成功后,进入仓库详情页面,分别获取"发布版本仓库地址"和"快照版本仓库地址",后续配置时需要使用。

阿里云制品仓库登录页面 创建 Maven 仓库 获取仓库地址

配置 PIGX 私服信息

在 PIGX 项目的 POM 文件中配置私服仓库地址,使 Maven 能够将构建产物上传到指定仓库。

需要修改的文件

需要在以下两个 POM 文件中添加 <distributionManagement> 配置:

  1. pigx/pom.xml(父 POM)
  2. pigx/pigx-common/pigx-common-bom/pom.xml(BOM 依赖管理)

配置示例

<!-- 配置 Maven 私服发布地址 -->
<distributionManagement>
  <repository>
    <!-- 正式版本仓库 -->
    <id>rdc-releases</id>
    <url>https://packages.aliyun.com/maven/repository/2161442-release-DcBZC1/</url>
  </repository>
  <snapshotRepository>
    <!-- 快照版本仓库 -->
    <id>rdc-snapshots</id>
    <url>https://packages.aliyun.com/maven/repository/2161442-snapshot-xxxxxx/</url>
  </snapshotRepository>
</distributionManagement>
URL 替换

请将上述示例中的仓库地址替换为你在阿里云制品仓库中实际获取的地址,特别是快照仓库地址。

配置 Maven 认证信息

在 Maven 的 settings.xml 文件中配置阿里云制品仓库的账号密码,用于上传权限验证。

获取认证凭证

访问 https://packages.aliyun.com/system-settings 页面,在"访问凭证"或"用户信息"中获取用户名和密码。

修改 settings.xml

在 Maven 安装目录的 conf/settings.xml 或用户目录的 .m2/settings.xml 文件中添加以下配置:

<servers>
  <server>
    <!-- 正式版本仓库认证 -->
    <id>rdc-releases</id>
    <username>你的阿里云账号</username>
    <password>你的访问凭证密码</password>
  </server>
  <server>
    <!-- 快照版本仓库认证 -->
    <id>rdc-snapshots</id>
    <username>你的阿里云账号</username>
    <password>你的访问凭证密码</password>
  </server>
</servers>
Maven settings.xml 配置示例
配置清理

请删除 settings.xml 中的代理配置和其他无关配置,仅保留 <servers> 节点配置,避免上传时出现认证失败或网络问题。

ID 匹配

<server> 中的 <id> 必须与 POM 文件中 <distributionManagement> 配置的 <id> 完全一致,Maven 通过 ID 匹配来获取认证信息。

执行构建和上传

完成上述配置后,在 PIGX 项目根目录执行以下命令进行构建和上传。

本地构建

首先执行本地构建,确保项目编译成功:

mvn clean install
构建说明

该命令会清理旧的构建产物,编译所有模块,并将 JAR 包安装到本地 Maven 仓库(~/.m2/repository)。

上传到私服

本地构建成功后,执行以下命令将 JAR 包上传到私服:

mvn clean deploy -Dmaven.test.skip=true
上传成功

命令执行成功后,可以在阿里云制品仓库的 Web 界面中查看已上传的 JAR 包及其版本信息。

更新快照依赖

当团队其他成员上传了新的快照版本时,需要强制更新本地依赖以获取最新版本。

mvn clean install -U
参数说明

-U 参数表示强制更新快照依赖,Maven 会检查私服上是否有更新的快照版本并下载到本地。

常见问题

上传失败:401 Unauthorized

检查 settings.xml 中的用户名和密码是否正确,以及 <server><id> 是否与 POM 中的配置一致。

上传失败:400 Bad Request

检查 POM 中的仓库地址是否正确,快照版本是否上传到了快照仓库(而非正式版本仓库)。

依赖更新不生效

执行 mvn clean install -U 强制更新,或删除本地仓库中的快照缓存目录(~/.m2/repository/com/pig4cloud/pigx)后重新构建。